#include <iostream>

using std::cout;
using std::endl;

class Base
{
public:
    Base(int member = 0)
    : _member(member)
    {

    }

    /* virtual */
    void print()
    {
        cout << "Base::_member = " << _member << endl;
    }

protected:
    int _member;
};

class Derived
: public Base
{
public:
    Derived(int member1 = 0, int member2 = 0)
    : Base(member1)
    , _member(member2)
    {

    }

    /* virtual */
    void print(int member) 
    {
        cout << "Base::_member = " << Base::_member << endl;
        cout << "Derived::_member = " << _member << endl;
    }

private:
    int _member;
};

int main(int argc, char *argv[])
{
    Derived d(10, 20);
    d.print(100);
    /* d.Base::print(); */
    return 0;
}

